package com.ctshk.rpc.system.service;

import java.util.List;

import com.ctshk.common.dto.Result;
import com.ctshk.common.model.PageResponse;
import com.ctshk.common.model.TokenUser;
import com.ctshk.common.req.OperationByIdReq;
import com.ctshk.rpc.system.dto.MainDataBusinessTypeDTO;
import com.ctshk.rpc.system.dto.MainDataManualSystemDTO;
import com.ctshk.rpc.system.req.MainDataManualSystemCreateReq;
import com.ctshk.rpc.system.req.MainDataManualSystemQueryReq;
import com.ctshk.rpc.system.req.MainDataManualSystemUpdateReq;

/**
 * 外挂系统主数据service
 * 
 * @author Qiaoxin.Hong
 *
 */
public interface IMainDataManualSystemService {

	/**
	 * 创建外挂系统主数据
	 * @param req
	 * @return
	 */
	Result<Long> createData(MainDataManualSystemCreateReq req, TokenUser tokenUser);
	
	/**
	 * 修改外挂系统主数据
	 * @param req
	 * @return
	 */
	Result<Void> updateData(MainDataManualSystemUpdateReq req, TokenUser tokenUser);
	
	/**
	 * 删除外挂系统主数据
	 * @param req
	 * @return
	 */
	Result<Void> deleteData(OperationByIdReq req, TokenUser tokenUser);
	
	/**
	 * 启用/禁用外挂系统主数据
	 * @param req
	 * @return
	 */
	Result<Void> changeStatus(OperationByIdReq req, TokenUser tokenUser);
	
	/**
	 * 查询外挂系统主数据列表
	 * @param req
	 * @return
	 */
	Result<PageResponse<MainDataManualSystemDTO>> queryList(MainDataManualSystemQueryReq req);
	
	/**
	 * 查询外挂系统主数据字典列表
	 * @param req
	 * @return
	 */
	Result<List<MainDataManualSystemDTO>> queryDictList(MainDataManualSystemQueryReq req);

	/**
	 * 根据id获取供应商id
	 * @param id
	 * @return
	 */
	Result<Long> querySupplierIdById(Long id);
	
	/**
	 * 根据id查询外挂系统主数据
	 * @param id
	 * @return
	 */
	Result<MainDataManualSystemDTO> findById(Long id);

	Result<List<MainDataBusinessTypeDTO>> queryBusinessTypeList();
}
